home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / reuse.lha / reuse / src / IODrv.mi < prev    next >
Text File  |  1992-08-18  |  2KB  |  90 lines

  1. (* $Id: IODrv.mi,v 1.2 1991/11/21 14:33:17 grosch rel $ *)
  2.  
  3. (* $Log: IODrv.mi,v $
  4.  * Revision 1.2  1991/11/21  14:33:17  grosch
  5.  * new version of RCS on SPARC
  6.  *
  7.  * Revision 1.1  90/03/02  17:35:00  grosch
  8.  * improved output behaviour using WriteFlush
  9.  * 
  10.  * Revision 1.0  88/10/04  11:46:59  grosch
  11.  * Initial revision
  12.  * 
  13.  *)
  14.  
  15. (* Ich, Doktor Josef Grosch, Informatiker, Sept. 1987 *)
  16.  
  17. MODULE IODrv;                (* buffered IO        *)
  18.  
  19. FROM SYSTEM    IMPORT ADDRESS, ADR;
  20.  
  21. FROM IO        IMPORT
  22.    tFile    , StdInput    , StdOutput    , StdError    ,
  23.    ReadOpen    , ReadClose    , Read        ,
  24.    ReadC    , ReadI        , ReadR        , ReadB        ,
  25.    ReadShort    , ReadLong    , ReadCard    ,
  26.    ReadNl    , EndOfLine    , EndOfFile    ,
  27.    WriteOpen    , WriteClose    , WriteFlush    , Write        ,
  28.    WriteC    , WriteI    , WriteR    , WriteB    ,
  29.    WriteShort    , WriteLong    , WriteCard    ,
  30.    WriteNl    , ReadS        , WriteS    ;
  31.  
  32. VAR
  33.    f, g    : tFile;
  34.    i, j    : INTEGER;
  35.    c    : CHAR;
  36.    b    : ARRAY [1..200] OF CHAR;
  37.    r    : REAL;
  38.  
  39. BEGIN
  40.    f := ReadOpen ("Makefile");
  41.    g := WriteOpen ("t");
  42.  
  43.    FOR i := 1 TO 200 DO
  44.       c := ReadC (f);
  45.       WriteC (StdOutput, c);
  46.       WriteC (g, c);
  47.    END;
  48.  
  49.    WHILE NOT EndOfFile (f) DO
  50.       i := Read (f, ADR (b), 200);
  51.       j := Write (StdOutput, ADR (b), i);
  52.       j := Write (g, ADR (b), i);
  53.    END;
  54.  
  55.    ReadClose (f);
  56.    WriteClose (g);
  57.    WriteNl (StdOutput);
  58.  
  59.    WriteS (StdOutput, "enter integers, 99 will stop");
  60.    WriteNl (StdOutput);
  61.    REPEAT
  62.       WriteFlush (StdOutput);
  63.       i := ReadI (StdInput);
  64.       WriteI (StdOutput, i, 10);
  65.       WriteShort (StdOutput, i, 10);
  66.       WriteLong (StdOutput, i, 10);
  67.       WriteCard (StdOutput, i, 10);
  68.       c := ReadC (StdInput);
  69.       WriteC (StdOutput, ' ');
  70.       WriteC (StdOutput, c);
  71.       WriteNl (StdOutput);
  72.    UNTIL i = 99;
  73.  
  74.    WriteS (StdOutput, "enter reals, 99 will stop");
  75.    WriteNl (StdOutput);
  76.    REPEAT
  77.       WriteFlush (StdOutput);
  78.       r := ReadR (StdInput);
  79.       WriteR (StdOutput, r, 2, 12, 3); WriteC (StdOutput, ',');
  80.       WriteR (StdOutput, r, 2, 3 , 2); WriteC (StdOutput, ',');
  81.       WriteR (StdOutput, r, 4, 3 , 1); WriteC (StdOutput, ',');
  82.       WriteR (StdOutput, r, 8, 3 , 0); WriteC (StdOutput, ',');
  83.       WriteR (StdOutput, r, 8, 1 , 0); WriteC (StdOutput, ',');
  84.       WriteR (StdOutput, r, 8, 0 , 0); WriteC (StdOutput, ',');
  85.       WriteNl (StdOutput);
  86.    UNTIL (98.9 <= r) AND (r <= 99.1);
  87.  
  88.    WriteClose (StdOutput);
  89. END IODrv.
  90.